import request from '@/utils/request'

/**
 * 创建标签
 * @param {Object} data
 * @param {string} data.name - 标签名称
 * @returns {Promise}
 */
export function createLabel(data) {
  return request({
    url: '/label/create',
    method: 'post',
    data,
  })
}

/**
 * 获取所有标签
 * @returns {Promise}
 */
export function getAllLabels() {
  return request({
    url: '/label/get-all',
    method: 'get',
  })
}

/**
 * 获取展示的标签
 * @returns {Promise}
 */
export function getShownLabels() {
  return request({
    url: '/label/get-shown',
    method: 'get',
  })
}

/**
 * 更新标签
 * @param {Object} data
 * @param {number} data.id - 标签ID
 * @param {string} data.name - 标签名称
 * @returns {Promise}
 */
export function updateLabel(data) {
  return request({
    url: '/label/update',
    method: 'post',
    data,
  })
}

/**
 * 添加标签到展示列表
 * @param {number} id - 标签ID
 * @returns {Promise}
 */
export function addShowLabel(data) {
  return request({
    url: '/label/add-show',
    method: 'get',
    params: data,
  })
}

/**
 * 更新展示标签的排序
 * @param {Array<number>} data - 标签ID数组，按顺序排列
 * @returns {Promise}
 */
export function updateShowSortLabels(data) {
  return request({
    url: '/label/update-show-sort',
    method: 'post',
    data,
  })
}

/**
 * 更新已完成页面标签的排序
 * @param {Array<number>} data - 标签ID数组，按顺序排列
 * @returns {Promise}
 */
export function updateCompletedSortLabels(data) {
  return request({
    url: '/label/update-completed-sort',
    method: 'post',
    data,
  })
}

// 删除标签
export function removeLabel(data) {
  return request({
    url: '/label/remove',
    method: 'get',
    params: data,
  })
}
